package com.ruoyi.basic.service;

import cn.hutool.core.collection.CollStreamUtil;
import com.ruoyi.basic.domain.JyArea;
import com.ruoyi.basic.mapper.JyAreaMapper;
import com.ruoyi.common.utils.DateUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 区域信息信息Service业务层处理
 *
 * @author aulbrother
 * @date 2024-04-06
 */
@Service
@RequiredArgsConstructor
public class JyAreaService {
    private final JyAreaMapper jyAreaMapper;

    /**
     * 查询区域信息信息
     *
     * @param id 区域信息信息主键
     * @return 区域信息信息
     */
    public JyArea selectJyAreaById(Long id) {
        return jyAreaMapper.selectJyAreaById(id);
    }

    /**
     * 查询区域信息信息列表
     *
     * @param jyArea 区域信息信息
     * @return 区域信息信息
     */
    public List<JyArea> selectJyAreaList(JyArea jyArea) {
        return jyAreaMapper.selectJyAreaList(jyArea);
    }

    public Map<Long, JyArea> selectJyAreaMap() {
        List<JyArea> jyAreas = jyAreaMapper.selectJyAreaList(null);

        return CollStreamUtil.toIdentityMap(jyAreas, JyArea::getId);
    }

    /**
     * 新增区域信息信息
     *
     * @param jyArea 区域信息信息
     * @return 结果
     */
    public int insertJyArea(JyArea jyArea) {
        jyArea.setCreateTime(DateUtils.getNowDate());
        return jyAreaMapper.insertJyArea(jyArea);
    }

    /**
     * 修改区域信息信息
     *
     * @param jyArea 区域信息信息
     * @return 结果
     */
    public int updateJyArea(JyArea jyArea) {
        jyArea.setUpdateTime(DateUtils.getNowDate());
        return jyAreaMapper.updateJyArea(jyArea);
    }

    /**
     * 批量删除区域信息信息
     *
     * @param ids 需要删除的区域信息信息主键
     * @return 结果
     */
    public int deleteJyAreaByIds(Long[] ids) {
        return jyAreaMapper.deleteJyAreaByIds(ids);
    }

    /**
     * 删除区域信息信息信息
     *
     * @param id 区域信息信息主键
     * @return 结果
     */
    public int deleteJyAreaById(Long id) {
        return jyAreaMapper.deleteJyAreaById(id);
    }
}
